package model

import (
	"gorm.io/gorm"
)

// 钩子： https://www.kancloud.cn/sliver_horn/gorm/1861175
type Model struct {
	gorm.Model
}

// Paginate 分页
func Paginate(page, page_size int) func(db *gorm.DB) *gorm.DB {
	return func(db *gorm.DB) *gorm.DB {
		if page < 1 {
			page = 1
		}
		if page_size < 1 {
			page_size = 1
		} else if page_size > 100 {
			page_size = 100
		}
		return db.Offset((page - 1) * page_size).Limit(page_size)
	}
}

// 状态字段过滤
func State(state int) func(db *gorm.DB) *gorm.DB {
	return func(db *gorm.DB) *gorm.DB {
		return db.Where("state = ?", state)
	}
}

// 用户字段查询
func User(user_id int) func(db *gorm.DB) *gorm.DB {
	return func(db *gorm.DB) *gorm.DB {
		return db.Where("user_id = ?", user_id)
	}
}
